﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Sistema_Test_OnLine.Logic;
using Sistema_Test_OnLine.Model;

namespace Sistema_Test_OnLine.Presentacion
{
    public partial class Hacer_Test : System.Web.UI.Page
    {
        List<Pregunta> lista = new List<Pregunta>();
        string[] respuestas = new string[10];
        Random r = new Random();
        int[] num_preguntas = new int[10];
        int paso = 0;
        int acer = 0;

        protected void Page_Load(object sender, EventArgs e)
        {
            
            string criterio = lis_examenes.SelectedValue;
            lista = Facade.GetPregunta(criterio);
            //Session["lista"] = lista;
            for (int i = 0; i < 10; i++)
            {
                num_preguntas[i] = r.Next(0, lista.Count);
                respuestas[i] = "nada";
            }
        }

        protected void Button1_Click(object sender, EventArgs e)
        {

            Session["paso"] = 0;
            Session["acer"] = 0;
            lis_examenes.Enabled = false;
            btn_aceptar.Enabled = false;
            btn_anterior.Visible = true;
            btn_siguiente.Visible = true;
            btn_finalizar.Visible = true;
            btn_finalizar.Enabled = false;
            enunciado.Visible = true;
            enunciado.Text = lista[num_preguntas[0]].Enunciado;

            if (lista[num_preguntas[0]].Tipo.Equals("Unica Respuesta"))
            {
                completar.Visible = false;
                Label1.Visible = true;
                CheckBox1.Visible = false;
                CheckBox2.Visible = false;
                CheckBox3.Visible = false;
                CheckBox4.Visible = false;
                RadioButton1.Visible = true;
                RadioButton2.Visible = true;
                RadioButton3.Visible = true;
                RadioButton4.Visible = true;
                op1.Visible = true;
                op2.Visible = true;
                op3.Visible = true;
                op4.Visible = true;

                if (!lista[num_preguntas[0]].Opcion1.Equals("no"))
                {
                    op1.Text = lista[num_preguntas[0]].Opcion1;
                }
                if (!lista[num_preguntas[0]].Opcion2.Equals("no"))
                {
                    op2.Text = lista[num_preguntas[0]].Opcion2;
                }
                if (!lista[num_preguntas[0]].Opcion3.Equals("no"))
                {
                    op3.Text = lista[num_preguntas[0]].Opcion3;
                }
                if (!lista[num_preguntas[0]].Opcion4.Equals("no"))
                {
                    op4.Text = lista[num_preguntas[0]].Opcion4;
                }

                if (lista[num_preguntas[0]].Opcion1.Equals("no"))
                {
                    op1.Text = lista[num_preguntas[0]].Solucion1;
                }
                if (lista[num_preguntas[0]].Opcion2.Equals("no"))
                {
                    op2.Text = lista[num_preguntas[0]].Solucion2;
                }
                if (lista[num_preguntas[0]].Opcion3.Equals("no"))
                {
                    op3.Text = lista[num_preguntas[0]].Solucion3;
                }
                if (lista[num_preguntas[0]].Opcion4.Equals("no"))
                {
                    op4.Text = lista[num_preguntas[0]].Solucion4;
                }


            }
            if (lista[num_preguntas[0]].Tipo.Equals("Multiple Respuesta"))
            {
                completar.Visible = false;
                Label1.Visible = true;
                CheckBox1.Visible = true;
                CheckBox2.Visible = true;
                CheckBox3.Visible = true;
                CheckBox4.Visible = true;
                RadioButton1.Visible = false;
                RadioButton2.Visible = false;
                RadioButton3.Visible = false;
                RadioButton4.Visible = false;
                op1.Visible = true;
                op2.Visible = true;
                op3.Visible = true;
                op4.Visible = true;

                if (!lista[num_preguntas[0]].Opcion1.Equals("no"))
                {
                    op1.Text = lista[num_preguntas[0]].Opcion1;
                }
                if (!lista[num_preguntas[0]].Opcion2.Equals("no"))
                {
                    op2.Text = lista[num_preguntas[0]].Opcion2;
                }
                if (!lista[num_preguntas[0]].Opcion3.Equals("no"))
                {
                    op3.Text = lista[num_preguntas[0]].Opcion3;
                }
                if (!lista[num_preguntas[0]].Opcion4.Equals("no"))
                {
                    op4.Text = lista[num_preguntas[0]].Opcion4;
                }

                if (lista[num_preguntas[0]].Opcion1.Equals("no"))
                {
                    op1.Text = lista[num_preguntas[0]].Solucion1;
                }
                if (lista[num_preguntas[0]].Opcion2.Equals("no"))
                {
                    op2.Text = lista[num_preguntas[0]].Solucion2;
                }
                if (lista[num_preguntas[0]].Opcion3.Equals("no"))
                {
                    op3.Text = lista[num_preguntas[0]].Solucion3;
                }
                if (lista[num_preguntas[0]].Opcion4.Equals("no"))
                {
                    op4.Text = lista[num_preguntas[0]].Solucion4;
                }



            }
            if (lista[num_preguntas[0]].Tipo.Equals("Completar"))
            {
                completar.Visible = true;
                Label1.Visible = true;
                CheckBox1.Visible = false;
                CheckBox2.Visible = false;
                CheckBox3.Visible = false;
                CheckBox4.Visible = false;
                RadioButton1.Visible = false;
                RadioButton2.Visible = false;
                RadioButton3.Visible = false;
                RadioButton4.Visible = false;
                op1.Visible = false;
                op2.Visible = false;
                op3.Visible = false;
                op4.Visible = false;
                //enunciado.Text = lista[num_preguntas[0]].Enunciado;

            }

        }

        protected void btn_siguiente_Click(object sender, EventArgs e)
        {
            paso = int.Parse(Session["paso"].ToString());
            if (lista[num_preguntas[paso]].Tipo.Equals("Unica Respuesta"))
            { 
                if(RadioButton1.Checked)
                {
                    if (lista[num_preguntas[paso]].Solucion1.Equals(op1))
                    {
                        respuestas[paso] = op1.Text;
                    }
                    
                }
                if (RadioButton2.Checked)
                {
                    if (lista[num_preguntas[paso]].Solucion2.Equals(op2))
                    {
                        respuestas[paso] = op2.Text;
                    }

                }
                if (RadioButton3.Checked)
                {
                    if (lista[num_preguntas[paso]].Solucion3.Equals(op3))
                    {
                        respuestas[paso] = op3.Text;
                    }

                }
                if (RadioButton4.Checked)
                {
                    if (lista[num_preguntas[paso]].Solucion4.Equals(op4))
                    {
                        respuestas[paso] = op4.Text;
                    }

                }
            }
            if (lista[num_preguntas[paso]].Tipo.Equals("Respuesta Multiple"))
            {

                if (CheckBox1.Checked)
                {
                    if (lista[num_preguntas[paso]].Solucion1.Equals(op1))
                    {
                        respuestas[paso] = op1.Text;
                    }

                }
                if (CheckBox2.Checked)
                {
                    if (lista[num_preguntas[paso]].Solucion2.Equals(op2))
                    {
                        respuestas[paso] = respuestas[paso]+" "+op2.Text;
                    }

                }
                if (RadioButton3.Checked)
                {
                    if (lista[num_preguntas[paso]].Solucion3.Equals(op3))
                    {
                        respuestas[paso] = respuestas[paso] + " " +op3.Text;
                    }

                }
                if (RadioButton4.Checked)
                {
                    if (lista[num_preguntas[paso]].Solucion4.Equals(op4))
                    {
                        respuestas[paso] = respuestas[paso] + " " +op4.Text;
                    }

                }
            }
            if (lista[num_preguntas[paso]].Tipo.Equals("Completar"))
            {
                if (lista[num_preguntas[paso]].Solucion1.Equals(completar.Text))
                {
                    respuestas[paso] = completar.Text;
                }
            }
            paso = paso + 1;
            Session["paso"] = paso;
            Label2.Text = "Pregunta Numero " + paso;
            //Label1.Text = "" + lista.Count+"-->"+num_preguntas.Count()+"-->"+paso;

            //Label1.Text=""+num_preguntas[paso];

            if (paso < 10)
            {


                enunciado.Text = lista[num_preguntas[paso]].Enunciado;

                if (lista[num_preguntas[paso]].Tipo.Equals("Unica Respuesta"))
                {
                    completar.Visible = false;
                    Label1.Visible = true;
                    CheckBox1.Visible = false;
                    CheckBox2.Visible = false;
                    CheckBox3.Visible = false;
                    CheckBox4.Visible = false;
                    RadioButton1.Visible = true;
                    RadioButton2.Visible = true;
                    RadioButton3.Visible = true;
                    RadioButton4.Visible = true;
                    op1.Visible = true;
                    op2.Visible = true;
                    op3.Visible = true;
                    op4.Visible = true;

                    if (!lista[num_preguntas[paso]].Opcion1.Equals("no"))
                    {
                        op1.Text = lista[num_preguntas[paso]].Opcion1;
                    }
                    if (!lista[num_preguntas[paso]].Opcion2.Equals("no"))
                    {
                        op2.Text = lista[num_preguntas[paso]].Opcion2;
                    }
                    if (!lista[num_preguntas[paso]].Opcion3.Equals("no"))
                    {
                        op3.Text = lista[num_preguntas[paso]].Opcion3;
                    }
                    if (!lista[num_preguntas[paso]].Opcion4.Equals("no"))
                    {
                        op4.Text = lista[num_preguntas[paso]].Opcion4;
                    }

                    if (lista[num_preguntas[paso]].Opcion1.Equals("no"))
                    {
                        op1.Text = lista[num_preguntas[paso]].Solucion1;
                    }
                    if (lista[num_preguntas[paso]].Opcion2.Equals("no"))
                    {
                        op2.Text = lista[num_preguntas[paso]].Solucion2;
                    }
                    if (lista[num_preguntas[paso]].Opcion3.Equals("no"))
                    {
                        op3.Text = lista[num_preguntas[paso]].Solucion3;
                    }
                    if (lista[num_preguntas[paso]].Opcion4.Equals("no"))
                    {
                        op4.Text = lista[num_preguntas[paso]].Solucion4;
                    }

                }
                if (lista[num_preguntas[paso]].Tipo.Equals("Multiple Respuesta"))
                {
                    completar.Visible = false;
                    Label1.Visible = true;
                    CheckBox1.Visible = true;
                    CheckBox2.Visible = true;
                    CheckBox3.Visible = true;
                    CheckBox4.Visible = true;
                    RadioButton1.Visible = false;
                    RadioButton2.Visible = false;
                    RadioButton3.Visible = false;
                    RadioButton4.Visible = false;
                    op1.Visible = true;
                    op2.Visible = true;
                    op3.Visible = true;
                    op4.Visible = true;
                    if (!lista[num_preguntas[paso]].Opcion1.Equals("no"))
                    {
                        op1.Text = lista[num_preguntas[paso]].Opcion1;
                    }
                    if (!lista[num_preguntas[paso]].Opcion2.Equals("no"))
                    {
                        op2.Text = lista[num_preguntas[paso]].Opcion2;
                    }
                    if (!lista[num_preguntas[paso]].Opcion3.Equals("no"))
                    {
                        op3.Text = lista[num_preguntas[paso]].Opcion3;
                    }
                    if (!lista[num_preguntas[paso]].Opcion4.Equals("no"))
                    {
                        op4.Text = lista[num_preguntas[paso]].Opcion4;
                    }

                    if (lista[num_preguntas[paso]].Opcion1.Equals("no"))
                    {
                        op1.Text = lista[num_preguntas[paso]].Solucion1;
                    }
                    if (lista[num_preguntas[paso]].Opcion2.Equals("no"))
                    {
                        op2.Text = lista[num_preguntas[paso]].Solucion2;
                    }
                    if (lista[num_preguntas[paso]].Opcion3.Equals("no"))
                    {
                        op3.Text = lista[num_preguntas[paso]].Solucion3;
                    }
                    if (lista[num_preguntas[paso]].Opcion4.Equals("no"))
                    {
                        op4.Text = lista[num_preguntas[paso]].Solucion4;
                    }
                }
                if (lista[num_preguntas[paso]].Tipo.Equals("Completar"))
                {
                    completar.Visible = true;
                    Label1.Visible = true;
                    CheckBox1.Visible = false;
                    CheckBox2.Visible = false;
                    CheckBox3.Visible = false;
                    CheckBox4.Visible = false;
                    RadioButton1.Visible = false;
                    RadioButton2.Visible = false;
                    RadioButton3.Visible = false;
                    RadioButton4.Visible = false;
                    op1.Visible = false;
                    op2.Visible = false;
                    op3.Visible = false;
                    op4.Visible = false;

                    //enunciado.Text = lista[num_preguntas[paso]].Enunciado;


                }
            }
            if (paso >= 10)
            {
                btn_siguiente.Enabled = false;
                btn_finalizar.Enabled = true;

            }



        }

        protected void btn_anterior_Click(object sender, EventArgs e)
        {
            paso = int.Parse(Session["paso"].ToString());
            paso = paso - 1;
            Session["paso"] = paso;
            //Label1.Text = "" + lista.Count+"-->"+num_preguntas.Count()+"-->"+paso;

            //Label1.Text=""+num_preguntas[paso];


            if (paso >= 0)
            {
                enunciado.Text = lista[num_preguntas[paso]].Enunciado;

                if (lista[num_preguntas[paso]].Tipo.Equals("Unica Respuesta"))
                {
                    completar.Visible = false;
                    Label1.Visible = true;
                    CheckBox1.Visible = false;
                    CheckBox2.Visible = false;
                    CheckBox3.Visible = false;
                    CheckBox4.Visible = false;
                    RadioButton1.Visible = true;
                    RadioButton2.Visible = true;
                    RadioButton3.Visible = true;
                    RadioButton4.Visible = true;
                    op1.Visible = true;
                    op2.Visible = true;
                    op3.Visible = true;
                    op4.Visible = true;

                    if (!lista[num_preguntas[paso]].Opcion1.Equals("no"))
                    {
                        op1.Text = lista[num_preguntas[paso]].Opcion1;
                    }
                    if (!lista[num_preguntas[paso]].Opcion2.Equals("no"))
                    {
                        op2.Text = lista[num_preguntas[paso]].Opcion2;
                    }
                    if (!lista[num_preguntas[paso]].Opcion3.Equals("no"))
                    {
                        op3.Text = lista[num_preguntas[paso]].Opcion3;
                    }
                    if (!lista[num_preguntas[paso]].Opcion4.Equals("no"))
                    {
                        op4.Text = lista[num_preguntas[paso]].Opcion4;
                    }

                    if (lista[num_preguntas[paso]].Opcion1.Equals("no"))
                    {
                        op1.Text = lista[num_preguntas[paso]].Solucion1;
                    }
                    if (lista[num_preguntas[paso]].Opcion2.Equals("no"))
                    {
                        op2.Text = lista[num_preguntas[paso]].Solucion2;
                    }
                    if (lista[num_preguntas[paso]].Opcion3.Equals("no"))
                    {
                        op3.Text = lista[num_preguntas[paso]].Solucion3;
                    }
                    if (lista[num_preguntas[paso]].Opcion4.Equals("no"))
                    {
                        op4.Text = lista[num_preguntas[paso]].Solucion4;
                    }

                }
                if (lista[num_preguntas[paso]].Tipo.Equals("Multiple Respuesta"))
                {
                    completar.Visible = false;
                    Label1.Visible = true;
                    CheckBox1.Visible = true;
                    CheckBox2.Visible = true;
                    CheckBox3.Visible = true;
                    CheckBox4.Visible = true;
                    RadioButton1.Visible = false;
                    RadioButton2.Visible = false;
                    RadioButton3.Visible = false;
                    RadioButton4.Visible = false;
                    op1.Visible = true;
                    op2.Visible = true;
                    op3.Visible = true;
                    op4.Visible = true;
                    if (!lista[num_preguntas[paso]].Opcion1.Equals("no"))
                    {
                        op1.Text = lista[num_preguntas[paso]].Opcion1;
                    }
                    if (!lista[num_preguntas[paso]].Opcion2.Equals("no"))
                    {
                        op2.Text = lista[num_preguntas[paso]].Opcion2;
                    }
                    if (!lista[num_preguntas[paso]].Opcion3.Equals("no"))
                    {
                        op3.Text = lista[num_preguntas[paso]].Opcion3;
                    }
                    if (!lista[num_preguntas[paso]].Opcion4.Equals("no"))
                    {
                        op4.Text = lista[num_preguntas[paso]].Opcion4;
                    }

                    if (lista[num_preguntas[paso]].Opcion1.Equals("no"))
                    {
                        op1.Text = lista[num_preguntas[paso]].Solucion1;
                    }
                    if (lista[num_preguntas[paso]].Opcion2.Equals("no"))
                    {
                        op2.Text = lista[num_preguntas[paso]].Solucion2;
                    }
                    if (lista[num_preguntas[paso]].Opcion3.Equals("no"))
                    {
                        op3.Text = lista[num_preguntas[paso]].Solucion3;
                    }
                    if (lista[num_preguntas[paso]].Opcion4.Equals("no"))
                    {
                        op4.Text = lista[num_preguntas[paso]].Solucion4;
                    }
                }
                if (lista[num_preguntas[paso]].Tipo.Equals("Completar"))
                {
                    completar.Visible = true;
                    Label1.Visible = true;
                    CheckBox1.Visible = false;
                    CheckBox2.Visible = false;
                    CheckBox3.Visible = false;
                    CheckBox4.Visible = false;
                    RadioButton1.Visible = false;
                    RadioButton2.Visible = false;
                    RadioButton3.Visible = false;
                    RadioButton4.Visible = false;
                    op1.Visible = false;
                    op2.Visible = false;
                    op3.Visible = false;
                    op4.Visible = false;

                    //enunciado.Text = lista[num_preguntas[paso]].Enunciado;


                }
            }
            if (paso < 0)
            {
                btn_anterior.Enabled = false;
                
             }
        }

        protected void btn_finalizar_Click(object sender, EventArgs e)
        {
            acer = int.Parse(Session["acer"].ToString());
            for (int i = 0; i < 10;i++ )
            {
                if (!respuestas[i].Equals("nada"))
                {
                    acer = acer + 1;
                }
            }
            Label3.Visible = true;
            Label4.Visible = true;
            Label5.Visible = true;
            Label6.Visible = true;
            Label7.Visible = true;
            Label8.Visible = true;
            Label9.Visible = true;

            Label7.Text = "" + acer;
            Label8.Text = "" + (10 - acer);
            Label9.Text = "" + (acer / 10) * 100;
        }
    }
}